// 底部导航栏
import 'package:fashion_app/config/app.dart';
import 'package:flutter/material.dart';

class BottomNav extends StatefulWidget {
  // 新增一个参数用于接收初始化的默认当前索引值
  final int initialIndex;

  const BottomNav({Key? key, this.initialIndex = 0}) : super(key: key);

  @override
  _BottomNavState createState() => _BottomNavState();
}

class _BottomNavState extends State<BottomNav> {
  // 定义当前选中的索引，使用传入的初始值
  late int _currentIndex;

  @override
  void initState() {
    super.initState();
    _currentIndex = widget.initialIndex;
  }

  // 定义导航栏项列表
  static const List<BottomNavigationBarItem> navItems = [
    BottomNavigationBarItem(icon: Icon(Icons.home), label: '首页'),
    BottomNavigationBarItem(icon: Icon(Icons.shopping_cart), label: '衣橱'),
    BottomNavigationBarItem(icon: CustomIcon(), label: ''),
    BottomNavigationBarItem(icon: Icon(Icons.calendar_month), label: '日历'),
    BottomNavigationBarItem(icon: Icon(Icons.person), label: '我的'),
  ];

  // 处理导航点击事件
  void _onItemTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
    // 这里可以添加具体的页面跳转逻辑
    switch (index) {
      case 0:
        // 跳转到首页
        Navigator.pushNamed(context, '/home');
        break;
      case 1:
        // 跳转到衣橱页面
        Navigator.pushNamed(context, '/closet');
        break;
      case 2:
        // 处理添加操作
        print('处理添加操作');
        break;
      case 3:
        // 跳转到日历页面
        print('跳转到日历页面');
        break;
      case 4:
        // 跳转到我的页面
        print('跳转到我的页面');
        break;
    }
  }

  @override
  Widget build(BuildContext context) {
    return BottomNavigationBar(
      items: navItems,
      currentIndex: _currentIndex,
      onTap: _onItemTapped,
      type: BottomNavigationBarType.fixed,
      selectedItemColor: AppConfig.themeColor.withOpacity(0.8),
      enableFeedback: false,
    );
  }
}

// 自定义图标信息
class CustomIcon extends StatelessWidget {
  const CustomIcon({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 56,
      height: 56,
      decoration: BoxDecoration(
        color: AppConfig.themeColor,
        borderRadius: BorderRadius.circular(28),
      ),
      child: Icon(Icons.add, color: Colors.white),
    );
  }
}
